package com.ionehe.group.common.uaa.ex.domain.service;

import com.ionehe.group.common.io.Response;
import com.ionehe.group.common.uaa.ex.dto.FunctionDTO;
import com.ionehe.group.common.uaa.ex.dto.Paging;
import com.ionehe.group.common.uaa.ex.dto.UserDetailDTO;
import com.ionehe.group.common.uaa.ex.dto.UserInfoDTO;
import com.ionehe.group.common.uaa.ex.dto.UserInfoQueryDTO;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.List;

/**
 * @USER:秀
 * @DATE: 2020/11/30
 * @PROJECT_NAME: general-permissions
 * @Description 用户读接口
 **/
public interface UserReadService {

    /**
     * 查询角色列表
     *
     * @param queryDTO
     * @return
     */
    Response<Paging<UserInfoDTO>> list(UserInfoQueryDTO queryDTO);

    /**
     * 根据用户名获取后台管理员
     *
     * @param username 用户名
     * @param type
     * @return 用户信息
     */
    Response<UserDetails> loadUserByUsernameAndAccountType(String username, String type);

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return 用户信息
     */
    Response<UserDetailDTO> getUserByUsername(String username);

    /**
     * 获取指定用户的可访问资源
     *
     * @param account 用户账号
     * @return 用户的可访问资源
     */
    Response<List<FunctionDTO>> getResourceList(String account);
}
